// var o;
// exports.WxPlatform = void 0;
// var r = (function (e) {
//     function t() {
//         var t = e.call(this) || this;
//         t._shareEnabled = !1;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.init = function () {
//         this.checkUpdate();
//         this.qiyong_fenxiang();
//     };
//     t.prototype.huoqu_api = function (e) {
//         return window.wx ? (window.wx[e] ? window.wx[e] : (console.error("wx api not found:", e), null)) : null;
//     };
//     t.prototype.huoqu_api_by_hanshu = function (e) {
//         return (window.wx && e) || null;
//     };
//     t.prototype.qiyong_fenxiang = function () {
//         var e;
//         var t = this;
//         if (!(this._shareEnabled || null === (e = this.huoqu_api("showShareMenu")) || void 0 === e)) {
//             e({
//                 withShareTicket: !0,
//                 success: function () {
//                     t._shareEnabled = !0;
//                 },
//                 fail: function () {}
//             });
//         }
//     };
//     t.prototype.getSetting = function (e) {
//         var t = this;
//         return new Promise(function (n, o) {
//             var i = t.huoqu_api("getSetting");
//             i
//                 ? i({
//                       success: function (t) {
//                           console.log("getSetting success:", t);
//                           t.authSetting
//                               ? e in t.authSetting == 0
//                                   ? n({
//                                         result: !1,
//                                         type: 0
//                                     })
//                                   : 0 == t.authSetting[e]
//                                   ? n({
//                                         result: !1,
//                                         type: 1
//                                     })
//                                   : n({
//                                         result: !0
//                                     })
//                               : o();
//                       },
//                       fail: function (e) {
//                           console.error("getSetting fail:", e);
//                           o(e);
//                       }
//                   })
//                 : o();
//         });
//     };
//     t.prototype.authorize = function (e) {
//         var t = this;
//         return new Promise(function (n, o) {
//             t.getSetting(e)
//                 .then(function (i) {
//                     console.log("setting Res:", i);
//                     if (0 == i.result) {
//                         if (0 == i.type) {
//                             var r = t.huoqu_api("authorize");
//                             r
//                                 ? r({
//                                       scope: e,
//                                       success: function (e) {
//                                           console.log("authorize success:", e);
//                                           n();
//                                       },
//                                       fail: function (e) {
//                                           console.error("authorize fail:", e);
//                                           o(e);
//                                       }
//                                   })
//                                 : n();
//                         } else {
//                             if (1 == i.type) {
//                                 var a = t.huoqu_api("openSetting");
//                                 a
//                                     ? a({
//                                           success: function (t) {
//                                               console.log("openSetting success:", t);
//                                               t.authSetting
//                                                   ? e in t.authSetting == 0 || 0 == t.authSetting[e]
//                                                       ? o()
//                                                       : n()
//                                                   : o();
//                                           },
//                                           fail: function (e) {
//                                               console.error("openSetting fail:", e);
//                                               o(e);
//                                           }
//                                       })
//                                     : o();
//                             }
//                         }
//                     } else {
//                         n();
//                     }
//                 })
//                 .catch(function () {
//                     o();
//                 });
//         });
//     };
//     t.prototype.subMsg = function (e) {
//         var t;
//         console.log("subMsg:", e);
//         var n = null === (t = this.huoqu_api("getOpenDataContext")) || void 0 === t ? void 0 : t();
//         if (n) {
//             n.postMessage(e);
//         }
//     };
//     t.prototype.submitScore = function (e) {
//         var t;
//         console.log("submitScore:", e.data);
//         var n = this._duixiang_zhuanhuan_jianzhi_shuzu(e.data);
//         if (!(null === (t = this.huoqu_api("setUserCloudStorage")) || void 0 === t)) {
//             t({
//                 KVDataList: n,
//                 success: function () {
//                     console.log("setUserCloudStorage success:", n);
//                     if (e.success) {
//                         e.success();
//                     }
//                 },
//                 fail: e.fail
//             });
//         }
//     };
//     t.prototype.checkUpdate = function () {
//         var e;
//         var t = null === (e = this.huoqu_api("getUpdateManager")) || void 0 === e ? void 0 : e();
//         if (t) {
//             t.onCheckForUpdate(function (e) {
//                 console.log("onCheckForUpdate:", e.hasUpdate);
//             });
//             t.onUpdateReady(function () {
//                 t.applyUpdate();
//             });
//             t.on_Update_Failed(function () {
//                 console.error("on_Update_Failed");
//             });
//         }
//     };
//     t.prototype.createGameClubButton = function (e) {
//         var t;
//         return null === (t = this.huoqu_api("createGameClubButton")) || void 0 === t
//             ? void 0
//             : t({
//                   type: e.type,
//                   text: e.text,
//                   image: e.image,
//                   style: e.style,
//                   icon: e.icon
//               });
//     };
//     t.prototype.createFeedbackButton = function (e) {
//         var t;
//         return null === (t = this.huoqu_api("createFeedbackButton")) || void 0 === t
//             ? void 0
//             : t({
//                   type: e.type,
//                   text: e.text,
//                   image: e.image,
//                   style: e.style
//               });
//     };
//     t.prototype.triggerGC = function () {
//         var e;
//         if (!(null === (e = this.huoqu_api("triggerGC")) || void 0 === e)) {
//             e();
//         }
//     };
//     t.prototype.requestSubscribeSystemMessage = function (e) {
//         var t;
//         var n = ["SYS_MSG_TYPE_WHATS_NEW"];
//         if (!(null === (t = this.huoqu_api("requestSubscribeSystemMessage")) || void 0 === t)) {
//             t({
//                 msgTypeList: n,
//                 success: function (t) {
//                     console.log("requestSubscribeSystemMessage success:", t);
//                     if (t) {
//                         var o = 0;
//                         for (var i = n; o < i.length; o++) {
//                             if ("accept" != t[i[o]]) {
//                                 return void (e.fail && e.fail(t));
//                             }
//                         }
//                         if (e.success) {
//                             e.success(t);
//                         }
//                     } else {
//                         if (e.fail) {
//                             e.fail();
//                         }
//                     }
//                 },
//                 fail: function (t) {
//                     console.error("requestSubscribeSystemMessage fail:", t);
//                     if (e.fail) {
//                         e.fail(t);
//                     }
//                 }
//             });
//         }
//     };
//     t.prototype.requestSubscribeMessage = function (e) {
//         var t;
//         if (!(null === (t = this.huoqu_api("requestSubscribeMessage")) || void 0 === t)) {
//             t({
//                 tmplIds: e.tmpIds,
//                 success: function (t) {
//                     console.log("requestSubscribeMessage success:", t);
//                     if (t) {
//                         var n = 0;
//                         for (var o = e.tmpIds; n < o.length; n++) {
//                             if ("accept" != t[o[n]]) {
//                                 return void (e.fail && e.fail(t));
//                             }
//                         }
//                         if (e.success) {
//                             e.success(t);
//                         }
//                     } else {
//                         if (e.fail) {
//                             e.fail();
//                         }
//                     }
//                 },
//                 fail: function (t) {
//                     console.error("requestSubscribeMessage fail:", t);
//                     if (e.fail) {
//                         e.fail(t);
//                     }
//                 }
//             });
//         }
//     };
//     t.prototype._duixiang_zhuanhuan_jianzhi_shuzu = function (e) {
//         var t = [];
//         if (e instanceof Object) {
//             for (var n in e)
//                 t.push({
//                     key: n,
//                     value: e[n] + ""
//                 });
//         } else {
//             if (e instanceof Array) {
//                 t = e;
//             }
//         }
//         return t;
//     };
//     t.prototype._jianzhi_shuzu_zhuanhuan_duixiang = function (e) {
//         var t = {};
//         e.forEach(function (e) {
//             if (null != e.key && null != e.value) {
//                 t[e.key] = e.value;
//             }
//         });
//         return t;
//     };
//     return t;
// })(require("./AL_GAME_HUA_BasePlatform").BasePlatform);
// exports.WxPlatform = r;


// /**
//  * WxPlatform类，用于处理微信平台相关功能
//  */
// var WxPlatform;
// exports.WxPlatform = WxPlatform;

// /**
//  * 继承AL_GAME_HUA_BasePlatform.BasePlatform类
//  */
// var WxPlatform = (function (BasePlatform) {
//     /**
//      * WxPlatform构造函数
//      */
//     function WxPlatform() {
//         var self = BasePlatform.call(this) || this;
//         self._shareEnabled = false;
//         return self;
//     }
//     __extends(WxPlatform, BasePlatform);

//     /**
//      * 初始化函数，调用检查更新和启用分享功能
//      */
//     WxPlatform.prototype.init = function () {
//         //this.checkUpdate();
//         this.qiyong_fenxiang();
//     };

//     /**
//      * 获取微信API接口
//      * @param {string} apiName 接口名称
//      * @returns {Function|null} 微信API接口函数或null
//      */
//     WxPlatform.prototype.huoqu_api = function (apiName) {
//         if (window.wx) {
//             return window.wx[apiName] || (console.error("wx api not found:", apiName), null);
//         }
//         return null;
//     };

//     /**
//      * 根据函数获取微信API接口
//      * @param {Function} func 函数
//      * @returns {Function|null} 函数或null
//      */
//     WxPlatform.prototype.huoqu_api_by_hanshu = function (func) {
//         return (window.wx && func) || null;
//     };

//     /**
//      * 启用分享功能
//      */
//     WxPlatform.prototype.qiyong_fenxiang = function () {
//         var shareMenu = this.huoqu_api("showShareMenu");
//         if (!this._shareEnabled && shareMenu) {
//             shareMenu({
//                 withShareTicket: true,
//                 success: function () {
//                     this._shareEnabled = true;
//                 }.bind(this),
//                 fail: function () {}
//             });
//         }
//     };

//     /**
//      * 获取设置
//      * @param {string} settingKey 设置键
//      * @returns {Promise} 返回Promise
//      */
//     WxPlatform.prototype.getSetting = function (settingKey) {
//         var self = this;
//         return new Promise(function (resolve, reject) {
//             var getSetting = self.huoqu_api("getSetting");
//             if (getSetting) {
//                 getSetting({
//                     success: function (res) {
//                         console.log("getSetting success:", res);
//                         if (res.authSetting) {
//                             if (!(settingKey in res.authSetting)) {
//                                 resolve({ result: false, type: 0 });
//                             } else if (!res.authSetting[settingKey]) {
//                                 resolve({ result: false, type: 1 });
//                             } else {
//                                 resolve({ result: true });
//                             }
//                         } else {
//                             reject();
//                         }
//                     },
//                     fail: function (error) {
//                         console.error("getSetting fail:", error);
//                         reject(error);
//                     }
//                 });
//             } else {
//                 reject();
//             }
//         });
//     };

//     /**
//      * 授权
//      * @param {string} scope 授权范围
//      * @returns {Promise} 返回Promise
//      */
//     WxPlatform.prototype.authorize = function (scope) {
//         var self = this;
//         return new Promise(function (resolve, reject) {
//             self.getSetting(scope).then(function (settings) {
//                 console.log("setting Res:", settings);
//                 if (!settings.result) {
//                     if (settings.type === 0) {
//                         var authorize = self.huoqu_api("authorize");
//                         if (authorize) {
//                             authorize({
//                                 scope: scope,
//                                 success: function () {
//                                     console.log("authorize success");
//                                     resolve();
//                                 },
//                                 fail: function (error) {
//                                     console.error("authorize fail:", error);
//                                     reject(error);
//                                 }
//                             });
//                         } else {
//                             resolve();
//                         }
//                     } else if (settings.type === 1) {
//                         var openSetting = self.huoqu_api("openSetting");
//                         if (openSetting) {
//                             openSetting({
//                                 success: function (res) {
//                                     console.log("openSetting success:", res);
//                                     if (res.authSetting && (settingKey in res.authSetting) && res.authSetting[settingKey]) {
//                                         resolve();
//                                     } else {
//                                         reject();
//                                     }
//                                 },
//                                 fail: function (error) {
//                                     console.error("openSetting fail:", error);
//                                     reject(error);
//                                 }
//                             });
//                         } else {
//                             reject();
//                         }
//                     }
//                 } else {
//                     resolve();
//                 }
//             }).catch(reject);
//         });
//     };

//     /**
//      * 发送消息
//      * @param {any} message 消息内容
//      */
//     WxPlatform.prototype.subMsg = function (message) {
//         console.log("subMsg:", message);
//         // var openDataContext = this.huoqu_api("getOpenDataContext");
//         // if (openDataContext) {
//         //     openDataContext().postMessage(message);
//         // }
//     };

//     /**
//      * 提交分数
//      * @param {object} scoreData 分数数据
//      */
//     WxPlatform.prototype.submitScore = function (scoreData) {
//         console.log("submitScore:", scoreData.data);
//         // var kvDataArray = this._duixiang_zhuanhuan_jianzhi_shuzu(scoreData.data);
//         // var setUserCloudStorage = this.huoqu_api("setUserCloudStorage");
//         // if (setUserCloudStorage) {
//         //     setUserCloudStorage({
//         //         KVDataList: kvDataArray,
//         //         success: function () {
//         //             console.log("setUserCloudStorage success:", kvDataArray);
//         //             if (scoreData.success) {
//         //                 scoreData.success();
//         //             }
//         //         },
//         //         fail: scoreData.fail
//         //     });
//         // }
//     };

//     /**
//      * 检查更新
//      */
//     WxPlatform.prototype.checkUpdate = function () {
//         // var updateManager = this.huoqu_api("getUpdateManager");
//         // if (updateManager) {
//         //     var updateManagerInstance = updateManager();
//         //     updateManagerInstance.onCheckForUpdate(function (res) {
//         //         console.log("onCheckForUpdate:", res.hasUpdate);
//         //     });
//         //     updateManagerInstance.onUpdateReady(function () {
//         //         updateManagerInstance.applyUpdate();
//         //     });
//         //     updateManagerInstance.on_Update_Failed(function () {
//         //         console.error("on_Update_Failed");
//         //     });
//         // }
//     };

//     /**
//      * 创建游戏俱乐部按钮
//      * @param {object} buttonConfig 按钮配置
//      * @returns {any} 按钮实例
//      */
//     WxPlatform.prototype.createGameClubButton = function (buttonConfig) {
//         var createGameClubButton = this.huoqu_api("createGameClubButton");
//         if (createGameClubButton) {
//             return createGameClubButton({
//                 type: buttonConfig.type,
//                 text: buttonConfig.text,
//                 image: buttonConfig.image,
//                 style: buttonConfig.style,
//                 icon: buttonConfig.icon
//             });
//         }
//         return null;
//     };

//     /**
//      * 创建反馈按钮
//      * @param {object} buttonConfig 按钮配置
//      * @returns {any} 按钮实例
//      */
//     WxPlatform.prototype.createFeedbackButton = function (buttonConfig) {
//         var createFeedbackButton = this.huoqu_api("createFeedbackButton");
//         if (createFeedbackButton) {
//             return createFeedbackButton({
//                 type: buttonConfig.type,
//                 text: buttonConfig.text,
//                 image: buttonConfig.image,
//                 style: buttonConfig.style
//             });
//         }
//         return null;
//     };

//     /**
//      * 触发GC（垃圾回收）
//      */
//     WxPlatform.prototype.triggerGC = function () {
//         var triggerGC = this.huoqu_api("triggerGC");
//         if (triggerGC) {
//             triggerGC();
//         }
//     };

//     /**
//      * 请求订阅系统消息
//      * @param {object} options 订阅选项
//      */
//     WxPlatform.prototype.requestSubscribeSystemMessage = function (options) {
//         var requestSubscribeSystemMessage = this.huoqu_api("requestSubscribeSystemMessage");
//         var msgTypeList = ["SYS_MSG_TYPE_WHATS_NEW"];
//         if (requestSubscribeSystemMessage) {
//             requestSubscribeSystemMessage({
//                 msgTypeList: msgTypeList,
//                 success: function (res) {
//                     console.log("requestSubscribeSystemMessage success:", res);
//                     if (res) {
//                         for (var i = 0; i < msgTypeList.length; i++) {
//                             if (res[msgTypeList[i]] !== "accept") {
//                                 if (options.fail) {
//                                     return options.fail(res);
//                                 }
//                                 return;
//                             }
//                         }
//                         if (options.success) {
//                             options.success(res);
//                         }
//                     } else if (options.fail) {
//                         options.fail();
//                     }
//                 },
//                 fail: function (error) {
//                     console.error("requestSubscribeSystemMessage fail:", error);
//                     if (options.fail) {
//                         options.fail(error);
//                     }
//                 }
//             });
//         }
//     };

//     /**
//      * 请求订阅消息
//      * @param {object} options 订阅选项
//      */
//     WxPlatform.prototype.requestSubscribeMessage = function (options) {
//         var requestSubscribeMessage = this.huoqu_api("requestSubscribeMessage");
//         if (requestSubscribeMessage) {
//             requestSubscribeMessage({
//                 tmplIds: options.tmpIds,
//                 success: function (res) {
//                     console.log("requestSubscribeMessage success:", res);
//                     if (res) {
//                         for (var i = 0; i < options.tmpIds.length; i++) {
//                             if (res[options.tmpIds[i]] !== "accept") {
//                                 if (options.fail) {
//                                     return options.fail(res);
//                                 }
//                                 return;
//                             }
//                         }
//                         if (options.success) {
//                             options.success(res);
//                         }
//                     } else if (options.fail) {
//                         options.fail();
//                     }
//                 },
//                 fail: function (error) {
//                     console.error("requestSubscribeMessage fail:", error);
//                     if (options.fail) {
//                         options.fail(error);
//                     }
//                 }
//             });
//         }
//     };

//     /**
//      * 将对象转换为键值对数组
//      * @param {object|array} obj 对象或数组
//      * @returns {array} 键值对数组
//      */
//     WxPlatform.prototype._duixiang_zhuanhuan_jianzhi_shuzu = function (obj) {
//         var kvArray = [];
//         if (obj instanceof Object) {
//             for (var key in obj) {
//                 if (obj.hasOwnProperty(key)) {
//                     kvArray.push({
//                         key: key,
//                         value: obj[key] + ""
//                     });
//                 }
//             }
//         } else if (obj instanceof Array) {
//             kvArray = obj;
//         }
//         return kvArray;
//     };

//     /**
//      * 将键值对数组转换为对象
//      * @param {array} kvArray 键值对数组
//      * @returns {object} 对象
//      */
//     WxPlatform.prototype._jianzhi_shuzu_zhuanhuan_duixiang = function (kvArray) {
//         var obj = {};
//         kvArray.forEach(function (item) {
//             if (item.key != null && item.value != null) {
//                 obj[item.key] = item.value;
//             }
//         });
//         return obj;
//     };

//     return WxPlatform;
// })(require("./AL_GAME_HUA_BasePlatform").BasePlatform);

// exports.WxPlatform = WxPlatform;



/**
 * WxPlatform类，用于处理微信平台相关功能
 */
const { MiniGameSdk } = require("../../resources/scripts/AL_SDK_MiniGameSdk");
const { AL_SDK_Utils } = require("../../resources/scripts/AL_SDK_Utils");
const { BasePlatform } = require("./AL_GAME_HUA_BasePlatform");

/**
 * WxPlatform类，继承自BasePlatform类
 */
class WxPlatform extends BasePlatform {
    /**
     * WxPlatform构造函数
     */
    constructor() {
        super();
        this._shareEnabled = false; // 是否启用分享功能
    }

    /**
     * 初始化函数，调用检查更新和启用分享功能
     */
    init() {
        this.qiyong_fenxiang();
    }

    /**
     * 获取微信API接口
     * @param {string} apiName 接口名称
     * @returns {Function|null} 微信API接口函数或null
     */
    huoqu_api(apiName) {
        if (window.wx) {
            return window.wx[apiName] || (console.error(`wx api not found: ${apiName}`), null);
        }
        return null;
    }

    /**
     * 根据函数获取微信API接口
     * @param {Function} func 函数
     * @returns {Function|null} 函数或null
     */
    huoqu_api_by_hanshu(func) {
        return window.wx && func || null;
    }

    /**
     * 启用分享功能
     */
    qiyong_fenxiang() {
        console.log("启用分享功能",MiniGameSdk);
        MiniGameSdk.API.showShareMenu();
        AL_SDK_Utils.showShareMenu();
        
        const showShareMenu = this.huoqu_api("showShareMenu");
        if (!this._shareEnabled && showShareMenu) {
            showShareMenu({
                withShareTicket: true,
                success: () => {
                    this._shareEnabled = true;
                },
                fail: () => {
                    console.error("Failed to enable sharing.");
                }
            });
        }
    }

    /**
     * 获取设置
     * @param {string} settingKey 设置键
     * @returns {Promise<object>} 返回Promise
     */
    getSetting(settingKey) {
        return new Promise((resolve, reject) => {
            const getSetting = this.huoqu_api("getSetting");
            if (getSetting) {
                getSetting({
                    success: (res) => {
                        console.log("getSetting success:", res);
                        if (res.authSetting) {
                            const authSetting = res.authSetting[settingKey];
                            if (authSetting === undefined) {
                                resolve({ result: false, type: 0 });
                            } else if (!authSetting) {
                                resolve({ result: false, type: 1 });
                            } else {
                                resolve({ result: true });
                            }
                        } else {
                            reject(new Error("authSetting is undefined."));
                        }
                    },
                    fail: (error) => {
                        console.error("getSetting fail:", error);
                        reject(error);
                    }
                });
            } else {
                reject(new Error("getSetting API not available."));
            }
        });
    }

    /**
     * 授权
     * @param {string} scope 授权范围
     * @returns {Promise<void>} 返回Promise
     */
    async authorize(scope) {
        try {
            const settings = await this.getSetting(scope);
            console.log("Setting result:", settings);

            if (!settings.result) {
                if (settings.type === 0) {
                    const authorize = this.huoqu_api("authorize");
                    if (authorize) {
                        await new Promise((resolve, reject) => {
                            authorize({
                                scope,
                                success: () => {
                                    console.log("authorize success");
                                    resolve();
                                },
                                fail: (error) => {
                                    console.error("authorize fail:", error);
                                    reject(error);
                                }
                            });
                        });
                    }
                } else if (settings.type === 1) {
                    const openSetting = this.huoqu_api("openSetting");
                    if (openSetting) {
                        await new Promise((resolve, reject) => {
                            openSetting({
                                success: (res) => {
                                    console.log("openSetting success:", res);
                                    if (res.authSetting?.[scope]) {
                                        resolve();
                                    } else {
                                        reject(new Error("Authorization denied."));
                                    }
                                },
                                fail: (error) => {
                                    console.error("openSetting fail:", error);
                                    reject(error);
                                }
                            });
                        });
                    } else {
                        throw new Error("openSetting API not available.");
                    }
                }
            }
        } catch (error) {
            throw error;
        }
    }

    /**
     * 检查更新
     */
    checkUpdate() {
    }

    /**
     * 创建游戏俱乐部按钮
     * @param {object} buttonConfig 按钮配置
     * @returns {any} 按钮实例
     */
    createGameClubButton(buttonConfig) {
        const createGameClubButton = this.huoqu_api("createGameClubButton");
        if (createGameClubButton) {
            return createGameClubButton({
                type: buttonConfig.type,
                text: buttonConfig.text,
                image: buttonConfig.image,
                style: buttonConfig.style,
                icon: buttonConfig.icon
            });
        }
        return null;
    }

    /**
     * 创建反馈按钮
     * @param {object} buttonConfig 按钮配置
     * @returns {any} 按钮实例
     */
    createFeedbackButton(buttonConfig) {
        const createFeedbackButton = this.huoqu_api("createFeedbackButton");
        if (createFeedbackButton) {
            return createFeedbackButton({
                type: buttonConfig.type,
                text: buttonConfig.text,
                image: buttonConfig.image,
                style: buttonConfig.style
            });
        }
        return null;
    }

    /**
     * 触发GC（垃圾回收）
     */
    triggerGC() {
        const triggerGC = this.huoqu_api("triggerGC");
        if (triggerGC) {
            triggerGC();
        }
    }

    /**
     * 请求订阅系统消息
     * @param {object} options 订阅选项
     */
    requestSubscribeSystemMessage(options) {
        const requestSubscribeSystemMessage = this.huoqu_api("requestSubscribeSystemMessage");
        const msgTypeList = ["SYS_MSG_TYPE_WHATS_NEW"];
        if (requestSubscribeSystemMessage) {
            requestSubscribeSystemMessage({
                msgTypeList,
                success: (res) => {
                    console.log("requestSubscribeSystemMessage success:", res);
                    if (res) {
                        const allAccepted = msgTypeList.every((msgType) => res[msgType] === "accept");
                        if (allAccepted && options.success) {
                            options.success(res);
                        } else if (options.fail) {
                            options.fail(res);
                        }
                    } else if (options.fail) {
                        options.fail();
                    }
                },
                fail: (error) => {
                    console.error("requestSubscribeSystemMessage fail:", error);
                    if (options.fail) {
                        options.fail(error);
                    }
                }
            });
        }
    }

    /**
     * 请求订阅消息
     * @param {object} options 订阅选项
     */
    requestSubscribeMessage(options) {
        const requestSubscribeMessage = this.huoqu_api("requestSubscribeMessage");
        if (requestSubscribeMessage) {
            requestSubscribeMessage({
                tmplIds: options.tmpIds,
                success: (res) => {
                    console.log("requestSubscribeMessage success:", res);
                    if (res) {
                        const allAccepted = options.tmpIds.every((tmpId) => res[tmpId] === "accept");
                        if (allAccepted && options.success) {
                            options.success(res);
                        } else if (options.fail) {
                            options.fail(res);
                        }
                    } else if (options.fail) {
                        options.fail();
                    }
                },
                fail: (error) => {
                    console.error("requestSubscribeMessage fail:", error);
                    if (options.fail) {
                        options.fail(error);
                    }
                }
            });
        }
    }

    /**
     * 将对象转换为键值对数组
     * @param {object|array} obj 对象或数组
     * @returns {array} 键值对数组
     */
    _duixiang_zhuanhuan_jianzhi_shuzu(obj) {
        if (obj instanceof Object) {
            return Object.keys(obj).map((key) => ({
                key,
                value: String(obj[key])
            }));
        }
        return Array.isArray(obj) ? obj : [];
    }

    /**
     * 将键值对数组转换为对象
     * @param {array} kvArray 键值对数组
     * @returns {object} 对象
     */
    _jianzhi_shuzu_zhuanhuan_duixiang(kvArray) {
        const obj = {};
        kvArray.forEach(({ key, value }) => {
            if (key != null && value != null) {
                obj[key] = value;
            }
        });
        return obj;
    }
}


exports.WxPlatform = WxPlatform;
